package Workflow;

import Constraints.IConstraint;
import Exceptions.ConstraintErrorException;
import Model.Core.IElement;
import Model.Draw.Events.DrawCompleteListener;
import Model.Draw.Events.ShowTipListener;
import Workflow.States.IState;

/**
 * Projeto de TCC: Editor de Diagramas de Comunicação em UML.
 * @author Jose Luz e Michele Puretachi
 * Elemento responsável por manter os itens durante um determinado tempo.
 */
public interface IWorkflow {

    public void setStartUpState(IState startUpState);

    public void setItem(Object element) throws ConstraintErrorException;

    public void setElement(IElement element);

    public boolean sameElement(IElement element);

    public void registerDrawCompleteListener(DrawCompleteListener listener);

    public void registerShowTipsListener(ShowTipListener listener);

    public void setWorkflowValidation(IConstraint constraint);
}
